/*
 * logger.h
 *
 *  Created on: Feb 1, 2010
 *      Author: dcrown
 */

#ifndef LOGGER_H_
#define LOGGER_H_

#include <string>
#include <windows.h>
#include <stdarg.h>

#define BUF_SIZE 1024

#define LOG(level, errString, ...) logVA(level, __func__, __FILE__, __LINE__, errString, ## __VA_ARGS__)

class Logger
{
public:
	enum Level {FATAL, RECOVERABLE, WARNING, DEBUG};

	Logger() {}
	~Logger() {}

	static Logger& getInstance();

	bool init();
	bool shutdown();

	void logVA(Level logLevel, const char* function, const char* file, int line, const char* errorString, ...);

};

#endif /* LOGGER_H_ */
